package com.tangsm.spring.mvc.mybatis.config;

/**
 * 动态切换数据源类型
 *
 * @author tangsm
 * @date 2021-08-02 10:20:20
 */
public class DbContextHolder {
    /**
     * 私有无参构造
     */
    private DbContextHolder() {
    }

    /**
     * 线程局部变量，存储数据源信息
     */
    private static final ThreadLocal<String> contextHolder = new ThreadLocal<>();

    /**
     * 手动设置数据源类型
     *
     * @param dbType 数据源类型
     */
    public static void setDbType(String dbType) {
        contextHolder.set(dbType);
    }

    /**
     * 获取当前数据源类型，为空默认mysql数据源类型
     *
     * @return 数据源类型Code
     */
    public static String getDbType() {
        return contextHolder.get();
    }

	/**
	 * 清除线程局部变量
	 */
	public static void clearDbType() {
		contextHolder.remove();
	}
}
